package com.zhoutianyu.learnspringboot.config;

import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

/**
 *      @ConditionalOnClass(SystemInit.class)表示如果编译路径下没有SystemInit.class依赖，那么就不会加载这个Bean。
 * 但是实际情况是你既然能够编译打包成功，一定会有这个文件，除非手动在target文件下删除了这个class字节码文件。
 *      @ConditionalOnMissingBean表示，如果Spring容器里没有SystemInit对象，那么就会为容器创建一个SystemInit对象。
 *      @Bean（initMethod）表明创建的SystemInit对象在初始化后会执行init()方法
 */
@Configuration
@ConditionalOnClass(SystemInit.class)
public class MyConfig {

    @Bean(initMethod = "init")
    @ConditionalOnMissingBean
    public SystemInit systemInit() {
        return new SystemInit();
    }
}